#ifndef COMPONENT_H
#define COMPONENT_H

#include <QString>

// Component 基类定义
class Component
{
protected:
    QString name;    // 组件名称
    double power;    // 当前功率
    bool isActive;   // 是否激活状态
     double efficiency; //该行新增

public:
    // 构造函数
    Component(const QString& componentName);
    // 双参数构造（支持自定义效率，供派生类使用）新增
    Component(const QString& componentName, double eff);

    // 虚析构函数（重要：确保派生类能正确析构）
    virtual ~Component();

    // 获取当前功率
    virtual double getPower() const;

    // 设置功率
    virtual void setPower(double newPower);

    // 获取组件状态信息
    virtual QString getStatus() const;

    // 获取组件名称
    QString getName() const;
    // 新增：激活状态控制
    void setActive(bool active);
    bool getIsActive() const;

    // 新增：效率访问
    double getEfficiency() const;
};

#endif // COMPONENT_H
